import pytest
from api.ihrmLoginApi import IhrmLoginApi
from common.assert_tools import assert_use
from common.read_json_tools import read_json_file
from config import BASE_DIR


# 定义 测试类
class TestIhrmLoginParams(object):

    # 组织 登录 json数据文件名
    login_json_file = BASE_DIR + "/data/login_data.json"

    # 调用 自定义函数，读json文件
    login_data = read_json_file(login_json_file)  # 得到 [(),(),()] 数据，保存在 login_data 中

    # 定义 通用测试方法， 结合 @pytest.mark.parametrize 实现参数化
    @pytest.mark.parametrize("desc, request_data, status_code, success, code, message", login_data)
    def test_login(self, desc, request_data, status_code, success, code, message):
        # 调用自定义 api 方法
        resp = IhrmLoginApi.login(request_data)
        print(desc, ":", resp.json())
        # 断言
        assert_use(resp, status_code, success, code, message)
